Location and time sensitive wireless calendaring

ABSTRACT

Disclosed in one embodiment is a computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, such as a cellphone, pager, PDA, etc. A user&#39;s calendar is maintained with a number of appointments, start times and end times for the appointments, meeting place and a list of attendees for the appointments. When the present time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user, the location of the user is determined based on the location of the wireless device. The location of the meeting place is also determined. Using historical data (of the user or others), the estimated time of arrival of the user at the meeting place is determined. If the estimated time of arrival is after the meeting start time, then a late message may be sent to the user and/or to the other meeting attendees.

TECHNICAL FIELD

[0001] This invention relates to a computer-implemented method and system for providing location and time sensitive wireless calendaring information to users.

BACKGROUND OF THE INVENTION

[0002] Calendaring software programs and personal information managers have greatly simplified the task of maintaining contacts and scheduling appointments. Time is an important aspect of calendaring software programs. Typically, an appointment or task has a start time and an end time. An appointment may also have a list of attendees. A reminder may be sent to the user of the calendaring program to remind the user when an appointment is approaching. One aspect that is lacking in calendaring programs is location. Calendaring programs do not provide functionality to users based on the user's present location.

[0003] Wireless devices with GPS capability (or a similar capability) are able to provide location information to a user. Unfortunately, these devices lack the ability to tie the user's location to a user's appointment information (in a calendar).

[0004] Thus, there is a need for a computer-implemented method and system for providing location and time-sensitive wireless calendaring information to users.

SUMMARY OF THE INVENTION

[0005] The present invention satisfies the above described needs by providing, in one embodiment, a computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, such as a cellphone, pager, personal digital assistant (PDA), etc. A user's calendar is maintained in a calendar program module with a number of appointments, start times and end times for the appointments, meeting places and a list of attendees for the appointments. When the present time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user, the location of the user is determined based on the location of the wireless device. The location of the meeting place is also known. Using historical data (of the user or others), the estimated time of arrival of the user at the meeting place is determined. If the estimated time of arrival is after the meeting start time, then a late message may be sent to the wireless devices of the user and/or to the other meeting attendees.

[0006] In one embodiment, the computer-implemented calendar program may be maintained in the wireless device itself. For example, the calendar program may be part of a personal digital assistant (PDA). In another embodiment, the calendar program may be maintained on a server connected to a wireless network. Multiple users, such as corporate users, may be associated with the server.

[0007] These and other features, advantages, and aspects of the present invention may be more clearly understood and appreciated from a review of the following detailed description of the disclosed embodiments and by reference to the appended drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008]FIG. 1 is a block diagram of an exemplary operating environment 100 in accordance with an embodiment of the present invention.

[0009]FIG. 2 is a flow diagram illustrating method for providing location-sensitive and time-sensitive calendaring to a wireless device in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

[0010] The present invention is directed toward a method and system for using position information to augment a calendaring application. Positions of wireless devices may be tracked over time to produce commute statistics. Each wireless device is typically associated with a user. The commute statistics and current position of the user may be used to predict whether the user will be late for a scheduled appointment. If so, then a message may be transmitted to the user and/or the other scheduled attendees of the meeting to notify them that the user will be late to the meeting. The message may also schedule a follow-up meeting at a later time when the user is scheduled to arrive. The invention may also be used for a roll call function so that a user may submit a roll call request and receive the current locations and/or approximate arrival times of the scheduled attendees for a meeting.

[0011] Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of the present invention and the exemplary operating environment will be described.

[0012]FIG. 1 is a block diagram of an exemplary operating environment 100 in accordance with an embodiment of the present invention. The environment 100 comprises a plurality of wireless devices connected to a wireless network 105. The wireless network may be any type of wireless network known to those skilled in the art such as a cellular network or a personal communications service (PCS) network. The wireless devices may be any of those known to those skilled in the art, such as a laptop computer 105 with a wireless connection (such as a wireless modem), a wireless telephone 115, a pager 120 or a personal digital assistant (PDA) 125 with a wireless connection (such as a wireless modem). The wireless devices send and receive wireless transmissions, such as radio signals, via wireless network 105.

[0013] It should be understood that wireless network 105 is any wireless network known to those skilled in the art and may include well-known components such as cell towers, mobile switching centers (MSCs), and the like.

[0014] The wireless network 105 is also connected to a server 130, preferably via a wireline connection. When the server 130 wants to send a message to one of the wireless devices, the server may transmit the message via the wireline connection to the wireless network. The wireless network may then transmit the message to the appropriate wireless device. The message may be any wireless message known to those skilled in the art, such as a short messaging service (SMS) message, an HTTP message or a voice message (using text-to-speech converters).

[0015] The server 130 is also connected to a computer 135 and/or a workstation 140. The server 130 may also be connected to a database 145.

[0016] A calendaring program (not shown) may be run on the server 130, on the computer 135 and/or workstation 140. A user operating computer 135, workstation 140 or a similar component connected to server 130 may use the calendaring program to schedule appointments, tasks and meetings. Associated with the appointments, tasks and/or meetings may be a number of attendees, a start time, and a meeting location. A separate calendar may be maintained for each user of the server. The server may be operated in a local area network (LAN) configuration, a wide area network (WAN) configuration or any other configuration known to those skilled in the art.

[0017] The database 145 may comprise a list of all users, their associated calendars and their associated wireless devices. When the server 130 needs to locate a user, the server determines the wireless device associated with the user and it sends a request message to the wireless network 105. The wireless network locates the user based on the user's wireless device and sends the location information back to the server 130. The location information may be latitude and longitude information, or similar mapping or location coordinates.

[0018] It should be understood that the location of the wireless device may be determined using well-known methods such as triangulation, GPS, E-911, etc.

[0019] Triangulation is a method of locating the source of a radio signal through the use of three receivers (such as cell towers) each of which focuses on the direction of maximum signal strength. Through the use of three receivers, it is possible to plot the location of the transmitter (the wireless device). Of course, the accuracy of triangulation may be affected by the radio signals bouncing off of and being absorbed by physical obstructions such as buildings and trees. Triangulation may also be referred to as angle of arrival. This process can also be accomplished using one or two receivers employing smart antenna technology.

[0020] Global Positioning System (GPS) is a system that precisely determines a location anywhere on earth. The GPS comprises around twenty satellites orbiting the earth. GPS is based on satellite ranging. Satellite ranging determines the position of a GPS device by measuring the distance of the GPS device from a group of satellites in space. The satellites act as precise reference points. To determine the precise position, latitude, longitude and altitude (and possible velocity), a fix with at least four satellites is required.

[0021] In a preferred embodiment, each GPS satellite transmits on two frequencies: 1575.42 MHz (referred to as L1) and 1227.60 MHz (referred to as L2). Along with other data, the satellite transmits its own position, time and a psuedo random noise code (PRN). The PRN is used by the receiver to calculate range. If the locations of several satellites are known and the precise range of the GPS device from these satellites, then the location and altitude of the GPS device may be determined. The satellites derives time from onboard celestial navigation equipment and atomic clocks accurate to one second in 300,000 years.

[0022] The ranging of the GPS device may function as follows. The GPS device and the satellites include a long sequence of bits. By aligning and comparing an internal stream of bits in the GPS device to the received bits from the satellite, a shift error or displacement can be calculated representing the travel time from the satellite to the GPS device. Because the GPS device also knows the precise location of the satellite and the range from the satellite to the GPS device, a triangulation calculation may provide two dimensional position (latitude and longitude) from three satellites. If a fourth satellite is used, elevation information may be obtained.

[0023] There are actually two PRN strings transmitted: a course acquisition code (C/A code) and a precision code (P code). The coarse code sequence comprises 1023 bits repeated every 266 days. However, each satellite transmits a seven day segment re-initialized at midnight Saturday or Sunday of each week. By using both codes, a very accurate position can be calculated. By transmitting the codes at different frequencies, even the signal attenuating effects of the ionosphere can to some degree be factored out. At the present time, civilian users are only authorized to use the coarse acquisition code and this is referred to as the GPS Standard Positioning System (SPS) with an accuracy of about 5 meters. Military users use both the coarse acquisition code and the precision code in what is referred to as the Precise Positioning System (PPS) with an accuracy to centimeters.

[0024] Although triangulation and GPS may be used to provide location information, other well-known locating techniques may also be used. For example, location may also be provided using the automatic location information (ALI) provided for E-911 service.

[0025] After the location of the wireless device is received from the wireless network using one of the above-described techniques or another known technique, the server may then use the user's location to store commute statistics. Commute statistics are typically stored as a user identifier, a time stamp and location information. The commute statistics may be used to determine how long it typically takes to get from point A to point B. The commute statistics may be based on a particular user, such as how long does it take user A to get from point A to point B. Alternatively, the commute statistics may be based on a group of users, such as how long does it take an average user of group A to get from point A to point B.

[0026] Based on these commute statistics, the server may perform calculations such as determining how long it will take the user to get to their next scheduled appointment. Based on this information, late messages may be sent to appropriate parties, appointments may be reschedules, alternative routes may be suggested to the user, etc.

[0027] Having described an exemplary operating environment in reference to FIG. 1, a flow diagram illustrating a method 200 for providing location-sensitive and time-sensitive calendaring to a wireless device in accordance with an embodiment of the present invention will be described in reference to FIGS. 1 and 2. It should be understood that the steps described herein in reference to flow diagrams are steps executed by a computer in response to instructions received from a computer-readable medium.

[0028] The method 200 begins at step 205 where it is determined that a user's appointment is approaching. For example, in one embodiment, it may be determined that a time reading (the present time) is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user. The appointment may comprise a meeting start time, a meeting place and a plurality of meeting attendees. Typically, the calendar information may be stored in server 130 and/or database 145. The server 130 may determine the approaching appointments based on this stored information.

[0029] At step 210, the location of the user associated with the approaching appointment is determined. Typically, either in the database 145 or server 130, will be a file with the wireless device(s) associated with a user. Thus, if user A is associated with a cellphone with directory number 555-555-5555, then the server will request that the wireless network 105 determine the location of user A based on the location of the wireless device associated with user A (the cellphone with directory number 555-555-5555).

[0030] At step 215, the location of the meeting place is determined. A plurality of meeting places and their location coordinates may be stored in database 145 and/or server 130. For example, if the user enters “Plaza Hotel” into his calendar for the meeting place, then a database may cross-reference the meeting place Plaza Hotel with its location coordinates (such as its street address, latitude/longitude, etc.) Alternatively, the user may directly enter the location of the meeting place when entering the appointment into his calendar.

[0031] At step 220, the estimated time of arrival of the user at the meeting place is determined. The estimated time of arrival may be determined using historical data. For example, by collecting data from different wireless devices (either those of the user or those of other users), the server may maintain a database of historical data. Typically, the historical data may comprise a user identifier, a time stamp and a location identification. The server may use the historical data to perform calculations, such as determining the average commute time between two different locations. These calculations may be performed based on a particular user (such as how long does it typically take user 1 to get from point A and point B). Alternatively, the calculations may be performed based on multiple users (such as, one average, how long does it take someone to get from point A to point B). The historical data may also be obtained from a third party, such as a traffic source, that tracks the traffic trends in a city. It should also be understood that, in some embodiments, an indication may be stored as to whether the user is traveling by foot, bicycle, motorcycle, car, train, etc. so that an accurate estimated time of arrival may be calculated. This mode of transportation indication may be set by the user at their computer (135 or 140). Alternatively, the user may set an indication on their wireless device to indicate their mode of transportation and the indication may be transmitted back to the server 130.

[0032] The estimated time of arrival may also be calculated based on the velocity of the user. The velocity may sometimes be calculated using GPS and other means. Thus, the velocity of the user, the user's current location and the meeting location may be used to determine an estimated time of arrival at the meeting location.

[0033] At step 225, if the estimated time of arrival is after the meeting start time, then a late message may be sent. The method 200 then ends. The late message may be sent to the user and/or to the plurality of meeting attendees. For example, a message may be sent to the user indicating that his estimated time of arrival is after the meeting start time and asking the user whether he wants to send a message to the other meeting attendees. If so, then a message is sent to the other meeting attendees.

[0034] Typically, the late message will be a SMS message or another type of text message. Alternatively, the message may be a voice message. To send the message, the server locates the wireless device(s) associated with the user and the meeting attendees. Typically, this information is stored in a database, such as database 145. The server connects to the wireless network through conventional means and the wireless network sends the message to the appropriate wireless device. For example, the server may send an e-mail message to the pager service provider of the user. The e-mail message indicates the estimated time of arrival of the user at the meeting. The pager service provider then sends the page to the user.

[0035] In alternative embodiments of the present invention, a roll call mechanism may be implemented. The roll call mechanism would allow a user to send out a roll call request for a meeting. The server would then determine all of the meeting attendees and, through requests to the wireless network, the server would determine the location of all the attendees for the meeting. The server may send the location of all meeting attendees to the user. Alternatively, the server may perform calculations to determine the estimated times of arrival for each of the meeting attendees and the server may send estimated times of arrival to the user and/or all of the meeting attendees.

[0036] In another embodiment, the invention may be connected to a mapping program to provide a map to be displayed to the user. The server may be able to determine the user's location, the closest appointment for the user and which route will get the user there on time. Determining the closest appointment may be particularly important for service calls, which is a particular use of an embodiment of the present invention. Thus, a service representative will be sent to the closest appointments and will be notified via their wireless device which appointment is next. The customer may receive a page, an email, a telephone call, etc. notifying the customer where the service representative is and the estimated time of arrival of the service representative.

[0037] In another embodiment, the invention may be able to automatically enter the meeting location based on the user's present location. For example, suppose a user is at a meeting at The Plaza Hotel. If the user enters a new appointment into their wireless device, such as a PDA, the default meeting location may be entered as The Plaza Hotel based on the location information received by the server.

[0038] In another embodiment, the present invention may automatically reschedule an appointment if the user is going to be late and send notifications to the user and the other meeting attendees of the new meeting time. This is particularly effective because preferably the server controls the calendars of the user and the meeting attendees.

[0039] Although the present invention has been described above as implemented in a preferred environment and using preferred methods, it will be understood that alternative embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its spirit and scope. Accordingly, the scope of the present invention is defined by the appended claims rather than the foregoing description. 

What is claimed is:
 1. A computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, the method comprising the steps of: determining that a time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user, wherein the appointment comprises a meeting start time, a meeting place and a plurality of meeting attendees and wherein the time reading is the present time; determining the location of the user based on the location of the wireless device; determining the location of the meeting place; using historical data, determining the estimated time of arrival of the user at the meeting place; and if the estimated time of arrival is after the meeting start time, then sending a late message to the plurality of meeting attendees.
 2. The method of claim 1 wherein the location of the meeting place is determined based on a stored list of meeting location coordinates.
 3. The method of claim 1 wherein the historical data comprises a database comprising a plurality of time stamps and location coordinates of the wireless device.
 4. The method of claim 3 wherein the step of determining the estimated time of arrival comprises the steps of: finding the location of the user in the database; finding the location of the meeting place in the database; determining the difference between the time stamp corresponding to the location of the user and the time stamp corresponding to the location of the meeting place; and adding the difference to the time reading to generate the estimated time of arrival.
 5. The method of claim 4 wherein the step of sending a late message to the plurality of meeting attendees comprises sending the late message to a plurality of wireless devices associated with the plurality of meeting attendees.
 6. The method of claim 1 wherein the step of determining the location of the user based on the location of the wireless device comprises using a global positioning system (GPS) receiver in the wireless device to determine the location of the wireless device.
 7. The method of claim 1 wherein the step of determining the location of the user based on the location of the wireless device comprises using a cellular tower triangulation method to determine the location of the wireless device.
 8. The method of claim 1 wherein the step of determining the location of the user based on the location of the wireless device comprises using an E.911 location information method in the wireless device to determine the location of the wireless device.
 9. A computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, the method comprising the steps of: determining that a time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user, wherein the appointment comprises a meeting start time, a meeting place and a plurality of meeting attendees and wherein the time reading is the present time; determining the location of the user based on the location of the wireless device; determining the location of the meeting place; using historical data, determining the estimated time of arrival of the user at the meeting place; and if the estimated time of arrival is after the meeting start time, then sending a message to the wireless device indicating the estimated time of arrival.
 10. The method of claim 9 wherein the location of the meeting place is determined based on a stored list of meeting location coordinates.
 11. The method of claim 9 wherein the historical data comprises a database comprising a plurality of time stamps and location coordinates of the wireless device.
 12. The method of claim 11 wherein the step of determining the estimated time of arrival comprises the steps of: finding the location of the user in the database; finding the location of the meeting place in the database; determining the difference between the time stamp corresponding to the location of the user and the time stamp corresponding to the location of the meeting place; and adding the difference to the time reading to generate the estimated time of arrival.
 13. The method of claim 9 wherein the step of determining the location of the user based on the location of the wireless device comprises using a global positioning system (GPS) receiver in the wireless device to determine the location of the wireless device.
 14. The method of claim 9 wherein the step of determining the location of the user based on the location of the wireless device comprises using a cellular tower triangulation method to determine the location of the wireless device.
 15. The method of claim 9 wherein the step of determining the location of the user based on the location of the wireless device comprises using an E.911 location information method in the wireless device to determine the location of the wireless device.
 16. A system for providing location-sensitive calendar information to a wireless device, the system comprising: a wireless device in communication with a server via a wireless network; and a calendaring program running on the server, whereby the server determines a present time and a present location of the wireless device of a user, whereby the server compares the present time and the present location to a meeting time and a meeting location in a calendar file associated with the user to determine an estimated time of arrival and wherein if the estimated time of arrival is after the meeting time the server sends a late message to the wireless device.
 17. A computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, the method comprising the steps of: determining that a time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user, wherein the appointment comprises a meeting start time, a meeting place and a plurality of meeting attendees and wherein the time reading is the present time; determining the location of the user based on the location of the wireless device; determining the location of the meeting place; determining the velocity of the user based on the velocity of the wireless device; determining the estimated time of arrival of the user at the meeting place based on the velocity of the user and the distance between the location of the user and the location of the meeting place; and if the estimated time of arrival is after the meeting start time, then sending a late message to the plurality of meeting attendees.
 18. A computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, the method comprising the steps of: determining that a request for a roll call of an appointment of a calendar of a user has been received, wherein the appointment comprises a plurality of meeting attendees; determining a location of each of the plurality of meeting attendees based on a location of a wireless device associated with each of the plurality of meeting attendees; determining the location of the meeting place; using historical data, determining the estimated time of arrival of each of the plurality of users at the meeting place; and then sending the estimated time of arrival for each of the plurality of meeting attendees to the wireless device of the user.
 19. The method of claim 18 further comprising the step of sending the location of each of the plurality of meeting attendees to the wireless device of the user.
 20. The method of claim 19 wherein the estimated time of arrival and location are displayed to the user in a SMS message. 